//写一个函数，实现一个整形有序数组的二分查找

#include <stdio.h>

int binary_search(int arr[], int k, int sz)
{
    int left = 0;
    int right = sz - 1;
    while(left <= right)
    {
        int mid = left + (right - left)/2;
        if(arr[mid] < k)
        {
            left = mid + 1;
        }else if(arr[mid] > k)
        {
            right = mid -1;
        }else{
            return mid; //找到了返回下标
        }
    }
    return -1; //没找到返回-1
}

int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int k = 0;
    scanf("%d",&k);
    int sz = sizeof(arr)/sizeof(arr[0]);
    int subscript = binary_search(arr,k,sz);
    if(subscript == -1)
    {
        printf("没找到\n");
    }else{
        printf("找到了，下标是%d\n",subscript);
    }
    return 0;
}